// 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。

// 请注意 ，必须在不复制数组的情况下原地对数组进行操作。

// 遍历的时候每遇到一个 非0 元素就将其往数组左边挪，第一次遍历完后，j 指针的下标就指向了最后一个 非0 元素下标。
// 第二次遍历的时候，起始位置就从 j 开始到结束，将剩下的这段区域内的元素全部置为 0。


void moveZeroes(int* nums, int numsSize){
    int i=0;
    int j=0;
    for(int i=0;i<numsSize;i++)
    {
        if(nums[i]!=0)
        {
            nums[j++]=nums[i];
        }
    }
    for(int i=j;i<numsSize;i++)
    {
        nums[i]=0;
    }
   

}

//我们使用两个指针 i 和 j，只要 nums[i]!=0，我们就交换 nums[i] 和 nums[j]
void moveZeroes(int* nums, int numsSize){
    int i=0;
    int j=0;
    for(int i=0;i<numsSize;i++)
    {
        if(nums[i]!=0)
        {
            int tmp=nums[i];
            nums[i]=nums[j];
            nums[j++]=tmp;
        }
    }
}